package com.example.forum.services;

import com.example.forum.model.ArticleDraft;
import com.example.forum.model.Article;

import java.util.List;

/**
 * 文章草稿服务接口
 */
public interface IArticleDraftService {
    
    /**
     * 保存草稿
     * @param draft 草稿对象
     * @return 草稿ID
     */
    Long saveDraft(ArticleDraft draft);
    
    /**
     * 根据ID获取草稿
     * @param id 草稿ID
     * @return 草稿对象
     */
    ArticleDraft getDraftById(Long id);
    
    /**
     * 获取用户所有草稿
     * @param userId 用户ID
     * @return 草稿列表
     */
    List<ArticleDraft> getUserDrafts(Long userId);
    
    /**
     * 更新草稿
     * @param draft 草稿对象
     * @return 是否更新成功
     */
    boolean updateDraft(ArticleDraft draft);
    
    /**
     * 删除草稿
     * @param id 草稿ID
     * @return 是否删除成功
     */
    boolean deleteDraft(Long id);
    
    /**
     * 发布草稿为正式文章
     * @param draftId 草稿ID
     * @return 发布的文章ID
     */
    Long publishDraft(Long draftId);
    
    /**
     * 将文章保存为草稿
     * @param article 文章对象
     * @return 草稿ID
     */
    Long saveArticleAsDraft(Article article);
    
    /**
     * 统计用户草稿数量
     * @param userId 用户ID
     * @return 草稿数量
     */
    int countUserDrafts(Long userId);
} 